package com.example.wheelview;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

/**
 * 数字轮训	适配器
 */
public class NumericWheelAdapter extends AbstractWheelTextAdapter {
    
	/** The default min value  默认最小值(0) */
	private static final int DEFAULT_MIN_VALUE = 0;
    /** The default max value 默认最大值(9) */
    public static final int DEFAULT_MAX_VALUE = 9;

    /** minValue 最小值 */
    private int minValue;
    /** maxValue 最大值 */
    private int maxValue;
    
    /** format 格式 */
    private String format;		
    /** label 标签 */
    private String label;		
    
    
    /**
     * 	构造方法1
     * @param context		上下文
     */
    public NumericWheelAdapter(Context context) {
        this(context, DEFAULT_MIN_VALUE, DEFAULT_MAX_VALUE);
    }

    /**
     * 	构造方法2
     * @param context		上下文
     * @param minValue	最小值
     * @param maxValue	最大值
     */
    public NumericWheelAdapter(Context context, int minValue, int maxValue) {
        this(context, minValue, maxValue, null);
    }

    /**
     * 构造方法3
     * @param context 		上下文
     * @param minValue 	最小值
     * @param maxValue 	最大值
     * @param format 		格式
     */
    public NumericWheelAdapter(Context context, int minValue, int maxValue, String format) {
        super(context);
        this.minValue = minValue;
        this.maxValue = maxValue;
        this.format = format;
    }

    
    /** get item文本 */
    public CharSequence getItemText(int index) {
        if (index >= 0 && index < getItemsCount()) {
            int value = minValue + index;
            return format != null ? String.format(format, value) : Integer.toString(value);
        }
        return null;
    }

    /** get item数量 */
    public int getItemsCount() {
        return maxValue - minValue + 1;
    }
    
    /** get item */
    public View getItem(int index, View convertView, ViewGroup parent) {
        if (index >= 0 && index < getItemsCount()) {
            if (convertView == null) {
                convertView = getView(itemResourceId, parent);
            }
            TextView textView = getTextView(convertView, itemTextResourceId);
            if (textView != null) {
                CharSequence text = getItemText(index);
                if (text == null) {
                    text = "";
                }
                textView.setText(text+label);
    
                if (itemResourceId == TEXT_VIEW_ITEM_RESOURCE) {
                    configureTextView(textView);
                }
            }
            return convertView;
        }
    	return null;
    }

    /** set 标签 */
	public void setLabel(String label) {
		this.label=label;
	}    
	
}